import { defineIconPack } from '@core/packages/icon/define-icon-pack.ts'
import {
  faBuilding,
  faCopy,
  faFile,
  faFolderClosed,
  faFolderOpen,
  faSquareCheck,
} from '@fortawesome/free-regular-svg-icons'
import {
  faA,
  faAlignLeft,
  faAngleDoubleLeft,
  faAngleDoubleRight,
  faAngleDown,
  faAngleLeft,
  faAngleRight,
  faAngleUp,
  faArrowDown,
  faArrowRight,
  faArrowRightFromBracket,
  faArrowUp,
  faArrowUpRightFromSquare,
  faAt,
  faBars,
  faBarsProgress,
  faBook,
  faCalendar,
  faCamera,
  faCaretDown,
  faCaretUp,
  faCheck,
  faCheckCircle,
  faChevronDown,
  faChevronUp,
  faCircle,
  faCircleCheck,
  faCircleMinus,
  faCircleNotch,
  faCirclePlay,
  faCircleUser,
  faCircleXmark,
  faCity,
  faClock,
  faClose,
  faCode,
  faComments,
  faDatabase,
  faDesktop,
  faDisplay,
  faDownLeftAndUpRightToCenter,
  faDownload,
  faEarthAmericas,
  faEdit,
  faEllipsis,
  faEllipsisVertical,
  faEraser,
  faExclamation,
  faExclamationCircle,
  faExternalLink,
  faEye,
  faEyeSlash,
  faFileCsv,
  faFileExport,
  faFilter,
  faFloppyDisk,
  faFont,
  faGear,
  faHardDrive,
  faHashtag,
  faHeadset,
  faInfo,
  faInfoCircle,
  faKeyboard,
  faLayerGroup,
  faLink,
  faList,
  faLock,
  faLockOpen,
  faMagnifyingGlass,
  faMemory,
  faMessage,
  faMicrochip,
  faMinus,
  faMoon,
  faNetworkWired,
  faPause,
  faPencil,
  faPlay,
  faPlug,
  faPlus,
  faPowerOff,
  faPuzzlePiece,
  faRemove,
  faRepeat,
  faRotateLeft,
  faRoute,
  faSatellite,
  faServer,
  faSliders,
  faSquare,
  faSquareCaretDown,
  faStar,
  faStop,
  faTags,
  faThumbTack,
  faThumbTackSlash,
  faTrash,
  faTriangleExclamation,
  faUpRightAndDownLeftFromCenter,
  faUpRightFromSquare,
  faWarning,
  faXmark,
} from '@fortawesome/free-solid-svg-icons'

export const faIcons = defineIconPack({
  a: { icon: faA },
  'align-left': { icon: faAlignLeft },
  'angle-double-left': { icon: faAngleDoubleLeft },
  'angle-double-right': { icon: faAngleDoubleRight },
  'angle-down': { icon: faAngleDown },
  'angle-left': { icon: faAngleLeft },
  'angle-right': { icon: faAngleRight },
  'angle-up': { icon: faAngleUp },
  'arrow-down': { icon: faArrowDown },
  'arrow-right': { icon: faArrowRight },
  'arrow-right-from-bracket': { icon: faArrowRightFromBracket },
  'arrow-up': { icon: faArrowUp },
  'arrow-up-right-from-square': { icon: faArrowUpRightFromSquare },
  at: { icon: faAt },
  bars: { icon: faBars },
  'bars-progress': { icon: faBarsProgress },
  book: { icon: faBook },
  building: { icon: faBuilding },
  camera: { icon: faCamera },
  calendar: { icon: faCalendar },
  'caret-down': { icon: faCaretDown },
  'caret-up': { icon: faCaretUp },
  check: { icon: faCheck },
  'check-circle': { icon: faCheckCircle },
  'chevron-down': { icon: faChevronDown },
  'chevron-up': { icon: faChevronUp },
  circle: { icon: faCircle },
  'circle-check': { icon: faCircleCheck },
  'circle-minus': { icon: faCircleMinus },
  'circle-notch': { icon: faCircleNotch },
  'circle-play': { icon: faCirclePlay },
  'circle-user': { icon: faCircleUser },
  'circle-xmark': { icon: faCircleXmark },
  city: { icon: faCity },
  close: { icon: faClose },
  clock: { icon: faClock },
  code: { icon: faCode },
  comments: { icon: faComments },
  copy: { icon: faCopy },
  database: { icon: faDatabase },
  date: { icon: faCalendar },
  desktop: { icon: faDesktop },
  display: { icon: faDisplay },
  'down-left-and-up-right-to-center': { icon: faDownLeftAndUpRightToCenter },
  download: { icon: faDownload },
  'earth-americas': { icon: faEarthAmericas },
  edit: { icon: faEdit },
  ellipsis: { icon: faEllipsis },
  'ellipsis-vertical': { icon: faEllipsisVertical },
  eraser: { icon: faEraser },
  exclamation: { icon: faExclamation },
  'exclamation-circle': { icon: faExclamationCircle },
  'external-link': { icon: faExternalLink },
  eye: { icon: faEye },
  'eye-slash': { icon: faEyeSlash },
  file: { icon: faFile },
  'file-csv': { icon: faFileCsv },
  'file-export': { icon: faFileExport },
  filter: { icon: faFilter },
  'floppy-disk': { icon: faFloppyDisk },
  'folder-closed': { icon: faFolderClosed },
  'folder-open': { icon: faFolderOpen },
  font: { icon: faFont },
  gear: { icon: faGear },
  'hard-drive': { icon: faHardDrive },
  hashtag: { icon: faHashtag },
  headset: { icon: faHeadset },
  info: { icon: faInfo },
  'info-circle': { icon: faInfoCircle },
  keyboard: { icon: faKeyboard },
  'layer-group': { icon: faLayerGroup },
  link: { icon: faLink },
  list: { icon: faList },
  lock: { icon: faLock },
  'lock-open': { icon: faLockOpen },
  'magnifying-glass': { icon: faMagnifyingGlass },
  memory: { icon: faMemory },
  message: { icon: faMessage },
  microchip: { icon: faMicrochip },
  minus: { icon: faMinus },
  moon: { icon: faMoon },
  'network-wired': { icon: faNetworkWired },
  pause: { icon: faPause },
  pencil: { icon: faPencil },
  play: { icon: faPlay },
  plug: { icon: faPlug },
  plus: { icon: faPlus },
  'power-off': { icon: faPowerOff },
  remove: { icon: faRemove },
  repeat: { icon: faRepeat },
  'rotate-left': { icon: faRotateLeft },
  route: { icon: faRoute },
  satellite: { icon: faSatellite },
  server: { icon: faServer },
  sliders: { icon: faSliders },
  square: { icon: faSquare },
  'square-caret-down': { icon: faSquareCaretDown },
  'square-check': { icon: faSquareCheck },
  star: { icon: faStar },
  stop: { icon: faStop },
  tags: { icon: faTags },
  template: { icon: faPuzzlePiece },
  time: { icon: faClock },
  'thumb-tack': { icon: faThumbTack },
  'thumb-tack-slash': { icon: faThumbTackSlash },
  trash: { icon: faTrash },
  'triangle-exclamation': { icon: faTriangleExclamation },
  'up-right-and-down-left-from-center': { icon: faUpRightAndDownLeftFromCenter },
  'up-right-from-square': { icon: faUpRightFromSquare },
  warning: { icon: faWarning },
  xmark: { icon: faXmark },
})
